package com.jcfy.framework.base;


import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * BaseService接口，提供通用的增删改查
 */
public interface BaseService<T> {

	/**
	 * 增加记录
	 * @param record
	 * @return 受影响行数
	 */
	int add(T record);

	/**
	 * 批量添加
	 * @param list
	 * @return
	 */
	int addAll(List<T> list);

	/**
	 * 删除记录
	 * @param id 主键id
	 * @return 受影响行数
	 */
	int del(Serializable id);

	/**
	 * 删除记录(支持批量刪除)
	 * @param ids 主键ids
	 * @return 受影响行数
	 */
	int delAll(List<Serializable> ids);

	/**
	 * 修改记录
	 * @param record
	 * @return 受影响行数
	 */
	int update(T record);

	/**
	 * 根据主键id查询记录
	 * @param id
	 * @return
	 */
	T getById(Serializable id);

	/**
	 * 根据多个主键id查询记录
	 * @param ids
	 * @return
	 */
	List<T> getByIds(List<Serializable> ids);

	/**
	 * 获取所有记录
	 * @return
	 */
	List<T> getAll();
	
	/**
	 * 根据参数条件获取所有记录
	 * @return
	 */
	List<T> getByParams(Map<String, Object> params);

//    /**
//     * 分页查询记录
//     * @param page
//     * @return
//     */
//    List<T> getPage(Page<T> page);
    
    
    /**
	 * 根据参数条件获取记录条数
	 * @return
	 */
	int getCount(Map<String, Object> params);
    
}